package com.sss.hloster01;
import java.util.Scanner;
public class JavaExercise0102 {

	public static void main(String[] args) {
		
		doGetingF();
	}
/**
 * 求解斐波那契数列的第N项的值
 * 运用递归
 */
	private static void doGetingF() {
		//输入所求的项数
		Scanner sc =new Scanner(System.in);
		//提示信息
		
		System.out.println("请输入所求的斐波那契数列的第几项:");
		byte i =sc.nextByte();
		//调用求解斐波那契数列的子方法
		//进行算法时间的计算
		//算法开始的时间（毫秒）
		long begin =System.currentTimeMillis();
		
		long lvcr = getF(i);
		//算法结束的时间（毫秒）
		long end = System.currentTimeMillis();
		//计算算法耗费的时间
		long time1 = end-begin;
		System.out.println("斐波那契数列的第"+i+"项的值为："+lvcr);
		System.out.println("耗费时间："+time1 +"毫秒");
		}
	/**求第几项之和
	 * 
	 * @param i 第几项
	 * @return 该项的斐波那契数列的值
	 * 
	 */
	private static long getF(int i) {
		//结束条件
		if(i ==1) {
			//递归到了第一项
			return 1;
		}
		if(i ==2) {
			//递归到了第二项
			return 1;
		}
		//递归调用
		//不是前两项的话，进行递归调用
		return getF(i -2)+getF(i -1);
	}
}
